skip to main content


Search for: All records

Creators/Authors contains: "James, Michael"

Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).
What is a DOI Number?

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

  1. Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But whatisthis new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants—with a range of prior experience using the assistant—as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants arebimodal: inacceleration mode, the programmer knows what to do next and uses Copilot to get there faster; inexploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants.

     
    more » « less
  2. null (Ed.)
  3. null (Ed.)
  4. null (Ed.)
    Abstract We formulate a class of stochastic partial differential equations based on Kelvin’s circulation theorem for ideal fluids. In these models, the velocity field is randomly transported by white-noise vector fields, as well as by its own average over realizations of this noise. We call these systems the Lagrangian averaged stochastic advection by Lie transport (LA SALT) equations. These equations are nonlinear and non-local, in both physical and probability space. Before taking this average, the equations recover the Stochastic Advection by Lie Transport (SALT) fluid equations introduced by Holm (Proc R Soc A 471(2176):20140963, 2015). Remarkably, the introduction of the non-locality in probability space in the form of momentum transported by its own mean velocity gives rise to a closed equation for the expectation field which comprises Navier–Stokes equations with Lie–Laplacian ‘dissipation’. As such, this form of non-locality provides a regularization mechanism. The formalism we develop is closely connected to the stochastic Weber velocity framework of Constantin and Iyer (Commun Pure Appl Math 61(3):330–345, 2008) in the case when the noise correlates are taken to be the constant basis vectors in $$\mathbb {R}^3$$ R 3 and, thus, the Lie–Laplacian reduces to the usual Laplacian. We extend this class of equations to allow for advected quantities to be present and affect the flow through exchange of kinetic and potential energies. The statistics of the solutions for the LA SALT fluid equations are found to be changing dynamically due to an array of intricate correlations among the physical variables. The statistical properties of the LA SALT physical variables propagate as local evolutionary equations which when spatially integrated become dynamical equations for the variances of the fluctuations. Essentially, the LA SALT theory is a non-equilibrium stochastic linear response theory for fluctuations in SALT fluids with advected quantities. 
    more » « less
  5. null (Ed.)
    We consider the problem of type-directed component-based synthesis where, given a set of (typed) components and a query type , the goal is to synthesize a term that inhabits the query. Classical approaches based on proof search in intuitionistic logics do not scale up to the standard libraries of modern languages, which span hundreds or thousands of components. Recent graph reachability based methods proposed for Java do scale, but only apply to monomorphic data and components: polymorphic data and components infinitely explode the size of the graph that must be searched, rendering synthesis intractable. We introduce type-guided abstraction refinement (TYGAR), a new approach for scalable type-directed synthesis over polymorphic datatypes and components. Our key insight is that we can overcome the explosion by building a graph over abstract types which represent a potentially unbounded set of concrete types. We show how to use graph reachability to search for candidate terms over abstract types, and introduce a new algorithm that uses proofs of untypeability of ill-typed candidates to iteratively refine the abstraction until a well-typed result is found. We have implemented TYGAR in H+, a tool that takes as input a set of Haskell libraries and a query type, and returns a Haskell term that uses functions from the provided libraries to implement the query type. Our support for polymorphism allows H+ to work with higher-order functions and type classes, and enables more precise queries due to parametricity. We have evaluated H+ on 44 queries using a set of popular Haskell libraries with a total of 291 components. H+ returns an interesting solution within the first five results for 32 out of 44 queries. Our results show that TYGAR allows H+ to rapidly return well-typed terms, with the median time to first solution of just 1.4 seconds. Moreover, we observe that gains from iterative refinement over exhaustive enumeration are more pronounced on harder queries. 
    more » « less
  6. null (Ed.)
  7. null (Ed.)